Communications over a network between two computers, for example a client and a server, can be implemented using a variety of known communication protocols. Often, however, the network connection is susceptible to breakdown. A wireless connection between a client and a server, for example, is often unreliable. In other cases, the network connection is intermittent. For example, a connection can be lost when one enters an elevator or tunnel and may only be capable of being restored following one's exit from the elevator or tunnel.
When communicating over a network connection using many current protocols, data packets are lost when the network connection is disrupted. For example, when many current protocols are communicated over a standard TCP network connection, data buffers are typically flushed upon disruption of the connection. As such, when the network connection is restored, a networked application, for example, is unable to resume from where it was prior to disruption. Typically an error message is displayed, adding user frustration to inconvenience.
Moreover, communicating over a network with many current protocols often requires frequent tear down and re-establishment of the transport connection. For example, using HTTP, either on its own or in conjunction with typical proxy protocols, to browse a website over a standard TCP connection requires, in addition to a new HTTP connection for each resource, the closure of a previous TCP/proxy protocol connection and the opening of a new TCP/proxy protocol connection for each resource.
Furthermore, when a network connection fails, one must typically restart and completely re-logon to the server before communications can resume. For example, logon credentials need to be re-applied. Often, this is a slow process that also results in user inefficiency.
Improved systems and methods for network communications are, therefore, needed.